function shellSort(arr) {
    // 获取增量
    let gap = Math.floor(arr.length / 2);
    //增量等于1 即为 插入排序 原始。 一定会将数组排好 这个时候结束循环
    while (gap >= 1) {
        // 进行插入排序
        for (let i = gap; i < arr.length; i++) {
            let key = arr[i],
                j = i - gap;
            while (key < arr[j]) {
                arr[j + gap] = arr[j];
                j -= gap;
            }
            arr[j + gap] = key;
        }
        gap = Math.floor(gap / 2);
    }
    return arr;
}


var a = [4, 0, 1, 3, 2, 6, 17, 419, 22, 46];
console.log(shellSort(a));